package ec.edu.ucacue.siop.service.cargasDiarias;

import java.io.File;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import org.hibernate.Session;
import org.hibernate.Transaction;

import ec.edu.ucacue.siop.dao.historico.HistoriaVariablesAlimentacionDAO;
import ec.edu.ucacue.siop.dao.historico.HistoriaVariablesAlimentacionDAOImpl;
import ec.edu.ucacue.siop.dao.recurso.VariableAlimentacionDAO;
import ec.edu.ucacue.siop.dao.recurso.VariableAlimentacionDAOImpl;
import ec.edu.ucacue.siop.modelo.operacion.historico.HistoriaVariablesAlimentacion;
import ec.edu.ucacue.siop.modelo.recurso.VariableAlimentacion;
import ec.edu.ucacue.siop.utilidades.HibernateUtil;

public class CargaDiariaServiceImpl implements CargaDiariaService {


	public String cargarCrudo(String fecha) {
		// iniciar session
		Session ses = HibernateUtil.getSession();
		Transaction tx = ses.beginTransaction();
		// revisar si hay datos para la fecha, se revisa si hay datos de variables alimentacion
		Calendar fi = Calendar.getInstance();
		System.out.println(fi);
		StringTokenizer tokens = new StringTokenizer(fecha,"-");
		int year = Integer.parseInt(tokens.nextToken());
		int month = Integer.parseInt(tokens.nextToken()) -1;
		int date = Integer.parseInt(tokens.nextToken());
		fi.set(year, month, date, 0, 1);
		Calendar ff = Calendar.getInstance();
		ff.set(year, month, date, 23, 59);
		HistoriaVariablesAlimentacionDAO hvaDao = new HistoriaVariablesAlimentacionDAOImpl();
		// seleccionar una variable de alimentacion del horno
		VariableAlimentacionDAO vaDao = new VariableAlimentacionDAOImpl();
		VariableAlimentacion var = vaDao.findByID(VariableAlimentacion.class, 30); 
		List<HistoriaVariablesAlimentacion> lista = hvaDao.buscarPorVarLapso(var, fi, ff);
		if(lista.size()>0) {
			tx.commit();
			HibernateUtil.closeSession();
			return "Existen datos para la fecha";
		}
		File dirCrudo = new File("Datos-crudo");
		if(!dirCrudo.isDirectory()){
			tx.commit();
			HibernateUtil.closeSession();
			return " el directorio Datos-crudo no existe en la direccion de arranque";
		}
		
		tx.commit();
		HibernateUtil.closeSession();
		return null;
	}

	public String cargarHorno(String fecha) {
		// TODO Auto-generated method stub
		return null;
	}

	public String cargarCemento(String fecha) {
		// TODO Auto-generated method stub
		return null;
	}

	public String cargarCalidad(String fecha) {
		// TODO Auto-generated method stub
		return null;
	}

}
